﻿/*
7-31 字符串循环左移 (20 分)
输入一个字符串和一个非负整数N，要求将字符串循环左移N次。

输入格式：
输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串；第2行给出非负整数N。

输出格式：
在一行中输出循环左移N次后的字符串。

输入样例：
Hello World!
2
输出样例：
llo World!He
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

static void read_line(char* a) {
	int n = 0;
	int readding = 1;
	char c;
	while (readding && scanf("%c",&c) != EOF) {
		switch (c) {
		case '\r':
		case '\n':
			readding = 0;
			break;
		default:
			a[n++] = c;
		}
	}
	a[n] = 0;
}

static void mystrncpy(char* dest, char* src, int n) {
	for (int i = 0; i < n && *src; i++)
		* dest++ = *src++;
	*dest = 0;
}

static void left_move(char* data, int n) {
	char buffer[255] = {};
	int dn = strlen(data);
	n %= dn;
	mystrncpy(buffer, data, n);
	mystrncpy(data, data + n, dn-n);
	mystrncpy(data + dn - n, buffer, n);
}

int main() {
	freopen("D:/Develop/GitRepos/MOOC/浙江大学/数据结构/201906/zju_C_Basic/data/7.31.txt", "r", stdin);
	int n;
	char data[101] = {};
	read_line(data);
	scanf("%d", &n);
	left_move(data, n);
	printf("%s\n", data);
	return 0;
}